package beans;

import java.util.ArrayList;

import tela.LogicaCliente;
import tela.Posicao;

public class PeaoMoves extends AbstractMoves {

	public PeaoMoves(int[][] matriz, Posicao posicao, LogicaCliente logicaCliente) {
		super(matriz, posicao, logicaCliente);
	}

	@Override
	public ArrayList<Posicao> calcula() {
		if(matriz[posicao.getI()][posicao.getJ()] < 10){//branco
			if((posicao.getI()-1 >=0) && (matriz[posicao.getI()-1][posicao.getJ()] == Pecas.VAZIO)){
				botoesPintar.add(new Posicao(posicao.getI()-1, posicao.getJ()));
				if((posicao.getI() == 6) && (matriz[posicao.getI()-2][posicao.getJ()] == Pecas.VAZIO)){
					botoesPintar.add(new Posicao(posicao.getI()-2, posicao.getJ()));
				}
			}
			if(posicao.getJ()<7){
				if(matriz[posicao.getI()-1][posicao.getJ()+1] > 10){
					botoesPintar.add(new Posicao(posicao.getI()-1, posicao.getJ()+1));
				}
			}
			if(posicao.getJ()>0){
				if(matriz[posicao.getI()-1][posicao.getJ()-1] > 10){
					botoesPintar.add(new Posicao(posicao.getI()-1, posicao.getJ()-1));
				}
			}
		}
		else{											//preto
			if((posicao.getI()+1<=7)&&(matriz[posicao.getI()+1][posicao.getJ()] == Pecas.VAZIO)){
				botoesPintar.add(new Posicao(posicao.getI()+1, posicao.getJ()));
				if((posicao.getI() == 1) && (matriz[posicao.getI()+2][posicao.getJ()] == Pecas.VAZIO)){
					botoesPintar.add(new Posicao(posicao.getI()+2, posicao.getJ()));
				}
			}
			
			//treta do peao
			if(posicao.getJ()<7){
				if((matriz[posicao.getI()+1][posicao.getJ()+1] < 10) && (matriz[posicao.getI()+1][posicao.getJ()+1] != Pecas.VAZIO)){
					botoesPintar.add(new Posicao(posicao.getI()+1, posicao.getJ()+1));
				}
			}
			if(posicao.getJ()>0){
				if((matriz[posicao.getI()+1][posicao.getJ()-1] < 10) && (matriz[posicao.getI()+1][posicao.getJ()-1] != Pecas.VAZIO)){
					botoesPintar.add(new Posicao(posicao.getI()+1, posicao.getJ()-1));
				}
			}
		}
		return botoesPintar;
	}

}
